package cn.silver.framework.satoken.enums;

import cn.silver.framework.core.model.DictModel;
import cn.silver.framework.core.utils.StreamUtils;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @author zhouxiaobo
 */
@Getter
@AllArgsConstructor
public enum GrantTypeEnums {
    /**
     * 密码认证
     */
    AUTH_PASSWORD("password", "密码认证"),
    /**
     * 短信认证
     */
    AUTH_SMS("sms", "短信认证"),
    /**
     * 邮箱认证
     */
    AUTH_MAIL("mail", "邮箱认证"),
    /**
     * 小程序认证
     */
    AUTH_XCX("xcx", "小程序认证"),
    /**
     * 第三方认证
     */
    AUTH_SOCIAL("social", "第三方认证"),
    ;
    private final String code;
    private final String name;

    public static List<DictModel> getModels() {
        return StreamUtils.toList(Arrays.asList(values()), item -> new DictModel(item.name, item.code));
    }
}
